iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
自我挑戰組

學習C#續系列 第 6

Day 6: 單一繼承制(Single Inheritance)

  • 分享至 

  • xImage
  •  

單一繼承(Single Inheritance):C# 的類別只支援繼承自單一直接基底類別(不可同時繼承多個 Class,但可實作多個 Interface)。

存取修飾詞(Access Modifiers)與繼承:

  • public:任何地方皆可存取。
  • protected:僅「類別本體」以及「其衍生子類別」內部可以存取,外部無法直接使用。
  • internal:同一個組件(Assembly / 專案)內可存取。
  • private:僅「該類別本身」可存取,子類別繼承但無權直接存取。

呼叫基底類成員(base 關鍵字):

  • 建構子轉發:子類別建構子透過 : base(...) 呼叫父類別建構子,確保父類別先完成初始化。
  • 成員存取:在子類別中使用 base.MethodName() 或 base.PropertyName 存取已被遮蔽或覆寫的父類別成員。

隱藏基底成員(Member Hiding / Shadowing):

  • 當子類別定義了與父類別「同名且簽章相同」的成員時,子類別成員會直接遮蔽父類別成員。
  • 應加上 new 關鍵字向編譯器明確宣告隱藏意圖(若不加仍可編譯,但會產生警告)。
  • 呼叫行為由變數型別決定:用父類別變數型別指向子類物件時,呼叫的是父類別版本;用子類別型別時,呼叫的是子類別版本(與 virtual/override 的動態多型不同)。

實作範例
https://ithelp.ithome.com.tw/upload/images/20260919/20178925cl0Pu07zq7.png
https://ithelp.ithome.com.tw/upload/images/20260919/20178925ZvLPWrBoRN.png


上一篇
Day 5: 繼承機制(Inheritance)
下一篇
Day 7: 多型(Polymorphism)
系列文
學習C#續8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言